Non-volatile memory, such as hard disk drive, EEPROM or flash memory, is the most popular hardware to store data without power supply for a certain period of time. Especially, flash memory is widely used in portable devices and makes our daily life convenient. We can see it in a laptop computer, a smartphone, or even a multifunction electronic watch. There are two major categories of flash memories, NAND flash and NOR flash. Although performances of these flash memories are different, the fundament for keeping information, namely, bits of logic 0 or logic 1, is the same. The flash memory stores the information in an array of memory cells consisting of floating gate transistors or charge trap transistors (cells). Physically, there are a number of electronics injected into and kept by a floating gate or charge trap layer of each cell. When the information needs to be read out, a sensing voltage should be applied to a control gate of the cell. If a threshold voltage for the cell is lower than the sensing voltage, the data stored in that cell is logic 1; otherwise, it is logic 0.
The above description is about operation of one cell. In a flash memory, there may be hundreds of thousands of cells arranged in pages of a couple of blocks. Due to difference from manufacturing processes and use situation, threshold voltage for each cell may not the same. In other words, when one sensing voltage is applied to all cells, one cell having a bit of logic 0 may be recognized as logic 1, vice versa. On the other hand, in order to make sure if the bit is correctly stored, i.e. it is not flipped, an ECC (Error Correcting Code) would be required to examine the information or pieces of the information before the information is further transmitted out. Soft-decision data should be available after the read operation. Therefore, techniques for fetching those soft-decision data of stored bits are required.
Please refer to FIG. 1. It shows a chart of distribution of threshold voltages of a flash memory. Ideally, when a sensing voltage 1 is applied, some cells having threshold voltages lower than it and recognized as logic 1 (the left solid distribution curve) while others having threshold voltages higher than it and recognized as logic 0 (programmed, the right solid distribution curve). However, a real situation would be like the two dashed distribution curves with an overlap (dashed area). The overlap means that the applied sensing voltage 1 will be used to tell some incorrect logic in some cells (the number of uncertain cells can be obtained by calculating the dashed area). It can be seen that the dashed interval is separated by a line indicating the sensing voltage 1. If the separation is made equally, namely, the one on the left of the line has the same size as that on the right of the line, a precise sensing voltage for the best soft-decision data could be available for ECC operation. This is a commonly used technique for the mentioned requirement. After a period of time in use, the threshold voltage distribution curves of the cells may vary, for example, changing to dot distribution curves in FIG. 1. If the sensing voltage 1 is still used, the best soft-decision data for ECC operation cannot be obtained. In FIG. 1, it is known that the precise sensing voltage for the changed condition is a sensing voltage 2. However, since the threshold voltage distribution curves of the cells change from time to time, it is hard to dynamically catch the sensing voltage 2. There are few studies on this issue as well.
Hence, an innovative method and system for determining bit values soft-decision data in a non-volatile memory is desired. Meanwhile, a precise sensing voltage applied thereby can be found out.